package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 排序字符串
 */
public class SortListDemo3 {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("jack");
        list.add("rose");
        list.add("tom");
        list.add("jerry");

        System.out.println(list);
        Collections.sort(list);
        System.out.println(list);
        /*
        string实现了comparable接口,比较规划:按照字符的unicode编码对应的整数比较
        如果第一个字符相同则比较第二个字符,以此类推
         */

        /*
            对于排序中文而言,当比较规则不满足需求时,可以自行定义一个比较规则
            规则:字少的小,字多的大
         */
        List<String> list1=new ArrayList<>();
        list1.add("李说水水水水水水水水");
        list1.add("哈哈哈哈");
        list1.add("我我我我我我我");
        list1.add("蔡徐坤");
        Collections.sort(list1, (o1, o2) -> o1.length()-o2.length());
        System.out.println(list1);

        Collections.sort(list1, new Comparator<String>() {
            @Override
            public int compare(String o1,String o2) {
                return o2.length()-o1.length();//字符长的大
                //length输出集合元素的长度
            }
        });
        System.out.println(list1);
    }
}

